블로그
카테고리 이동
[FinNLP 논문 리뷰 #2] 챗GPT, GPT4로 하는 주식 투자, Temporal Data Meets LLM
2023. 10. 4. 11:00
최근 들어서 많은 IT 회사들이 LLM(Large Language Model) 에 관심을 가지고 투자한 덕분에, Bard, GPT, LLama 등 LLM 모델 의 성능은 기하급수적으로 상승하고 있다. 학생들은 과제를 GPT 에게 맡기고, 직장인 혹은 전문직들도 본인들의 업무를 LLM 에게 맡겼다가 들켜서 난리가 났다는 뉴스가 심심치 않게 들린다.
그러면 이제 주식시장 에도 LLM 을 적용하면?이라는 생각이 당연히 생길 수밖에 없다. 그리고 6월 즈음 NLP 와 LLM (특히 GPT)을 사용해서 주식투자 를 해보려고 한 시도가 있어서 논문을 읽어보았다.
(논문명: Temporal Data Meets LLM - Explainable Financial Time Series Forecasting)[Temporal Data Meets LLM -- Explainable Financial Time Series Forecasting
This paper presents a novel study on harnessing Large Language Models' (LLMs) outstanding knowledge and reasoning abilities for explainable financial time series forecasting. The application of machine learning models to financial time series comes with several challenges, including the difficulty i...
arxiv.org
](https://arxiv.org/abs/2306.11025)
00: 핵심 아이디어
- 과거 주가 데이터, 회사 메타데이터와 경제/주식 뉴스로 주가를 예측하려는 시도가 지금까지 많았는데, '시계열 데이터의 복잡한 의존성 포착 불가', '딥러닝 모델의 해석과 결과에 대한 설명의 힘듦'의 문제로 어려움이 있었다.
- 그래서 GPT4 모델로 주가, 회사 메타 데이터, 과거 경제/금융 관련 뉴스 를 바탕으로 제로샷, 퓨샷 추론 을 시도하였다.
- 또한 공개 LLM 모델 인 Open LLama 로 instruction 기반 Fine Tuning(Prompt Engineering) 하여 GPT4 모델과 성능을 비교하였다.
- 그 결과,GPT4 모델로 ARMA-GARCH 모델 과 Gradient-boosting 트리 모델 에 비해 더 좋은 성능 을 거두었으며, Open LLAMA 또한 COT(Chain of Thought) 로 Fine Tuning한 결과 GPT4 에 준하는 성능을 거뒀다
01: 데이터 생성과 전처리
머신러닝 이던 딥러닝 이던 사실 분석 아이디어보다 이 데이터 전처리 부분이 가장 어려우면서도 괴로운 부분이다.
이 논문에서도 꽤나 복잡하게 데이터 전처리 를 했던데, 내가 한다면 전처리 노가다만 한 달 가량 걸렸을 것 같다.
0. 적용 대상 주식: NASDAQ100
1. 주가의 주간 변동률 관련 전처리: 상승은 'U', 하락은 'D'로 표기하며 그 뒤에 변동률 숫자를 표기한다.
±5% 이상의 변동률은 5+로 표기한다.
(+7%는 U5, -3%, D3)
2. 회사 메타데이터: GPT4 를 사용, 해당 회사 주가에 영향을 미칠 수 있는 긍정/부정적 요인을 생성
3. 금융/경제 관련 뉴스 데이터: Google Custom Search API 를 사용, 해당 회사에 대한 주간 상위 5개 뉴스 추출
매주 거시경제, 금융 상태에 대한 상위 5개 뉴스 기사도 추출
이 뉴스들을 요약할 수 있는 메타 요약, 키워드를 추가로 생성
02: Prompt Engineering (각 모델에 대한 Instruction)
GPT4를 사용해서 회사의 주가에 영향을 미칠 수 있는 일반적인 긍정적, 부정적 요인을 생성한다
GCP API로 뽑은 각 주식에 대한 뉴스에 대해 GPT4로 요약하고 키워드를 추출한다.
1. GPT4 제로샷/퓨샷 모델에 대한 Prompt Engineering
- 기본적으로 명령 기반 프롬프트를 사용하며, 지침, 회사 프로필, 주가 시계열, 과거 뉴스 요약 및 키워드 시퀀스, 교차 시퀀스 퓨삿 학습 예제를 제공 한다
- 프롬프트 텍스트에서 불필요한 반복을 방지하기 위해서 유사한 주제의 퓨샷 학습 사례 를 제공한다.
(예를 들어 AAPL이라면 MSFT, GOOGL, AMZN을 유사한 주식으로서 미리 제시를 해준다.)
- 지침을 두 부분으로 나누어서 프롬프트의 처음과 끝에 배치 한다.
(과거 데이터 요약보다는, 실제 미래 요약과 키워드 예측 등 해야 할 작업을 인식하는데 도움이 된다.)
- COT(Chain of Thought) 가 가능하도록 "출력을 최종적으로 하기 전에 단계적으로 추론할 수 있습니까"라는 지침을 추가한다.
GPT4로 요약한 한 주의 메타 요약과 키워드
2. Open LLaMA 의 Fine Tuning 을 위한 지침
- Open LLaMA 를 제로샷 추론으로 그대로 사용을 해버리면, 프롬프트 명령을 수행하기보다는 일부를 복제하여 출력해버린다. 그래서 Fine Tuning 은 필 수라고 할 수 있다.
- '17년 6월부터 '22년 6월까지 5년간 과거 데이터를 바탕으로 매주 30,000건의 예측 데이터와 7,000건의 월간 예측 데이터 세트를 만든다.
- 각 Fine Tuning 예제에 대해 GPT4 를 사용해서 전체 메타 뉴스 요약, 키워드를 만들고, 그걸 한 번 더 요약해서 요약과 키워드 쌍으로 만든다.
※ 이렇게 데이터를 정제 및 요약하여 모델에 제공하는 이유는 Open LLama 13B 모델 의 제로샷 요약 기능이 실제 GPT4 에 비해 상당히 떨어지기 때문이다.
03: 실험, Experiment
1. 실험 및 평가 대상: 주간, 월간 주가 예측 시도, 아래의 2가지를 평가
- 주가 예측의 정확성
① 주가 상승, 하락 방향성 예측의 정확성 체크: 'U', 'D' 글자가 맞는지
② 정확한 주가 변동률 예측 여부 체크: 'U4', 'D2' 등 단어가 맞는지
③ 주가 변동률 예측의 MSE 계산: 모형 예측과 실제 값 사이의 평균 제곱 차이를 계산
- 주가 예측에 대한 설명의 퀄리티 평가
: GPT4 를 사용하여 다음주/다음달의 실제 뉴스를 요약한 것, 그리고 모델의 주가예측 설명의 동일 정도를 평
(ROUGE1 - 단어 하나하나 동일 여부 체크 // ROUGE2 - 단어를 2개씩 묶어서 동일 여부 체크)
2. 베이스라인 모델: 비교용 모델로 LightGBM 과 ARMA-GARCH 모델 을 사용
3. 사용 데이터
- Training/Fine-Tuning 데이터: '17년 6월 ~ '22년 6월, 총 5년 데이터
- Evaluation 데이터: '22년 6월 ~ '23년 6월, 총 1년 데이터
※ 추가로 모델에게 "차근차근 설명해보라"라는 요구를 추가로 해본다.
※ GPT4 대상 실험: GPT-4 Response가 모델의 출력이며, Ground Truth는 실제 결과와 실제 뉴스
아쉽게도 GPT4 는 +1% 상승 예측, 실제로는 +3% 상승
GPT4의 주가 예측 결과
GPT4에게 COT를 요구하여 주가예측을 시도한 결과
※ Open-LLama 모델에게도 시도하였으나, 아쉽게도 극단적인 결과가 자주 나오는 편이었다.
Open-Llama 모델이 주가 예측을 한 결과
04: 결과
논문에서의 실험 결과, 확실히 LLM이 우수하다는 결과가 나온다
1. LLM 들의 예측 결과는 ARMA-GARCH 혹은 Gradient Boosting Tree Model 보다 정확도나 MSE 측면에서 더 좋은 편이었다.
2. COT(Chain of Thought) 를 도입한 결과, LLM의 결과에 더 나은 효과를 보여주었다.
3. 다만... 모델의 설명력과 관련해서는 GPT4 가 만든 요약, 키워드와 비교하는 것이기 때문에 당연히 GPT4 가 Open LLaMA 보다 우수한 결과가 나올 수밖에 없는데라는 생각이 든다. (사람 A가 만든 해답을 가지고 사람 A와 사람 B를 경쟁시킨다면 당연히 사람 A가 이기는 것이 아닌가?)
4. 어쨌든 LLM 의 논리력과 추론 능력은 대단하다는 생각이 든다. UP/DOWN을 약 70%의 확률로 맞출 수 있다면 선물/옵션 등의 금융상품에서 플러스알파를 충분히 만들 수 있을 것이다.